Many software applications provide a user with the ability to interact with the application in some manner. The mechanism by which a user is permitted to interact with a software application is called a user interface or “UI”. User interfaces typically provide controls or buttons that can be engaged by a user to cause a predetermined result. For example, a user might use their mouse to click on a button that minimizes or enlarges a particular UI. Alternately, a software application such as a media player may have several buttons that permit a user to play, pause, fast-forward, reverse, and control the volume of a particular piece of media that is playing on their computer.
UIs have, in the past, been generally fixed insofar as their layout and functionality is concerned. One primary reason for this stems from the desire to impart standardization to various UIs. Yet, against the backdrop of standardized UIs, there began to surface concerns associated with providing the ability to impart a different look to various UIs. For example, original equipment manufacturers who produced particular software applications using a predefined platform wanted the capability of “branding” their product. To meet these and other concerns so-called “skins” or skinning models began to surface.
Conventional skinning models provide the user or designer with an opportunity to change the look of a particular UI. They do so by providing a skin that serves as the visual portion of the UI—that is, the portion that the user sees when they interact with an application. In the past, and indeed the present, skin providers have been limited in the flexibility with which they can provide their skins. Specifically, skin providers have only been able to change the look of the UI, and have not been able to change the layout or functionality of the UI.
FIG. 1 shows a few exemplary skins, generally at 10 and 12, that are associated with a software application that provides functionality associated with an equalizer such as one would find on a stereo player. Notice that the look of the skins is different, but their layout and functionality is the same. Specifically, each skin has seven buttons and each button is associated with a setting from between 80 to 12K. The button, here in the form of a slider, can be adjusted up and down to vary each individual setting. The difference in the appearance or look of each skin is effected by using a different static bitmap to render the skin. Specifically to render skin 10, a first bitmap is used; and, to render skin 12 a second bitmap is used. Using static bitmaps to change the appearance of skins is a small step toward providing a unique user experience, but falls far short of providing a truly robust, flexible and rich user experience.
Accordingly, the invention arose out of concerns associated with providing improved skinning models and methods that provide a truly robust, flexible and rich user experience.